既存のCodeCommitリポジトリをリポジトリローカルな認証情報設定でダウンロードしたい時のメモ
サーバーレス開発部の阿部です。
チームで複数の案件が走っている関係上、いろんなプロジェクトのリポジトリを参照することがあります。場合によってはGithubではなく、CodeCommitを使うケースがあったりして、このようなドキュメントを参照したりすることもあります。
クロスアカウントアクセス: AccountB のリポジトリユーザー用アクション
ただし、ご覧いただいてお分かりの通り、このドキュメントでは認証設定をグローバルに保持しています。このやり方だとリポジトリごとにGithubにもGitBucketにもアクセスしたいとなった場合に面倒です。というかデフォルトはGithubにしたい。
というわけで、リポジトリローカルな認証情報を設定してリポジトリをダウンロードする手順をメモしておきました。
事前準備
まずは、プロファイルを作成しましょう。弊社の環境はMFA必須でAssumeRoleですので、下記記事を参照すればまず間違いはありません。
認証情報はローカルにしたい
gitはリポジトリローカルに認証情報を設定できますが、そのためには当たり前ですがローカルリポジトリを先に作る必要があります。
mkdir hoge; cd $_ git init
このリポジトリに対してCodeCommitの認証情報をローカルで設定します。
git config --local user.name "cm-abe.shinsuke" git config --local user.email "abe.shinsuke@classmethod" git config --local credential.helper "!aws codecommit credential-helper --profile [事前準備で作ったプロファイル] $@" git config --local credential.UseHttpPath true
リモートリポジトリを紐づける
このようにローカルリポジトリを先に作ってしまうとこのディレクトリには git clone
でリポジトリの内容をダウンロードすることはできません。
そのため、対象となるCodeCommitのリポジトリをリモートリポジトリとして設定して、fetchします。
git remote add origin [追加したいリモートリポジトリのURL] git fetch
これで、ローカルにリモートリポジトリの最新情報が反映されているので、あとは git checkout
コマンドを使って必要なものを同期しましょう。